struct passwd与struct group

您所在的位置:网站首页 shell 结构体 struct passwd与struct group

struct passwd与struct group

2024-07-11 08:44| 来源: 网络整理| 查看: 265

一、struct passwd

#include #include struct passwd { char *pw_name; /* 用户登录名 */ char *pw_passwd; /* 密码(加密后) */ __uid_t pw_uid; /* 用户ID */ __gid_t pw_gid; /* 组ID */ char *pw_gecos; /* 详细用户名 */ char *pw_dir; /* 用户目录 */ char *pw_shell; /* Shell程序名 */ };

要取得某个使用者的信息时,有以下几个常用函数:

struct passwd * getpwuid(uid_t uid); 知道用户uid(user id),用getpwuid获取用户相关信息。 此函数可用来获取用户名。 用法:char* fileUser = getpwuid(st.st_uid)->pw_name;

struct passwd * getpwnam(char * name); 知道用户名,用getpwnam获取用户的相关信息。

int getpw(uid_t uid, char *buf); 从/etc/passwd中查找符合参数uid所指定的用户账号数据, buf用于存放返回的用户信息。buf 字符串格式如下: 账号:密码:用户识别码(uid):组识别码(gid):全名:根目录:shell 返回值:返回 0 表示成功, 有错误发生时返回-1.

范例

#include #include main() { char buffer[80]; getpw(0, buffer); printf("%s\n", buffer); }

执行: root:123:0:0:root:/root:/bin/bash

struct passwd * pwdread(FILE * stream,struct passwd *p); 读取一个用户信息进来,填入p。返回p为成功,NULL为失败。

struct passwd * pwdalloc(void); 给passwd分配一块内存。

二、struct group

#include #include struct group { char *gr_name; /* 组名 */ char *gr_passwd; /* 密码 */ __gid_t gr_gid; /* 组ID */ char **gr_mem; /* 组成员名单 */ }

struct group * getgrgid(gid_t gid); 知道用户组gid(group id),用getgrgid获取用户组的相关信息。 用法:char * fileGrp = getgrgid(st.st_gid)->gr_name;

注意:文中的st为struct stat结构体,详见上一篇博文。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3